
#ifndef _CommandsManager_H_
#define _CommandsManager_H_

#include "../OLCore/AbstractCmdManager.hpp"
#include "../OLCore/AbstractObject.hpp"
#include "../OLCore/AbstractCommand.hpp"
#include "../OLApp/Application.hpp"



namespace NSApplication {

	class APPLICATIONAPI CommandsManager :
		public NSCore::AbstractCmdManager
	{
		Q_OBJECT

	public:
		CommandsManager();
		~CommandsManager();
	protected:
		const int MAX_STEPS{ 10 };

	public:
		virtual void execute(NSCore::AbstractCommand* cmd, bool append = true) override;
		virtual bool undo() override;
		virtual bool redo() override;

	public:
		inline QString className() override { return "CommandsManager"; };

	};

}

#endif
